Linear programming is a technique of determining an optimal solution to a set of defined constraints, which are represented as linear equalities or inequalities. Different classes of linear programs exist, including integer linear programs (IPs or ILPs) and mixed integer linear programs (MIPs or MILPs). Integer linear programs are those in which decision variables have to take integral values and satisfy the set of constraints, while MILPs have some decision variables that need to take integral values and some decision variables that can take on fractional values.